Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Как данные из массива добавить в БД (Moroz)
Author Message
Moroz
Guest





Карма: 388
   поощрить/наказать


PostPosted: Fri Oct 07, 2005 8:13 pm (написано за 5 минут 57 секунд)
   Post subject: Как данные из массива добавить в БД
Reply with quote

Есть массив $ok[1], и цикл выводящий этот массив:
Code (php): скопировать код в буфер обмена
for ($i=0; $i<count($ok[1]); $i++){
echo (www.php.net/echo) $ok[1][$i]."<br>";
}
Как значение массива построчно передать в БД ???,
Code (php): скопировать код в буфер обмена
$sql = "insert into test (text) values ('$ok[1][$i]."<')";
в цикле - не работает.
Функция serialize() - не интересует.

Пишу скрип импорта ссылок с удаленного сервера в БД:
Code (php): скопировать код в буфер обмена
$str = implode (www.php.net/implode)("",file (www.php.net/file)("http://www.server.ru/link.html"));
preg_match_all (www.php.net/preg_match_all)("!<link>(.*?)</link>!si",$str,$ok);

for ($i=0; $i<count($ok[1]); $i++){
echo (www.php.net/echo) $ok[1][$i]."<br>";
}
Back to top
Владимир Хоменко
Участник форума



Joined: 11 Jun 2004
Posts: 427
Карма: 42
   поощрить/наказать

Location: Николаев, Украина

PostPosted: Fri Oct 07, 2005 9:26 pm (спустя 1 час 12 минут; написано за 1 минуту 20 секунд)
   Post subject:
Reply with quote

Quote:
Функция serialize() - не интересует.
А меня очень интересует. Не расскажете?

Ну расскажите, что Вы пробовали, что у Вас не получается, приведите код, который Вы писали, чтобы побороть проблему, думайте, одним словом, никто не будет за Вас писать скрипт.
Back to top
View user's profile Send private message Send e-mail
Алексей С.
Участник форума



Joined: 11 Nov 2004
Posts: 103
Карма: 1
   поощрить/наказать


PostPosted: Fri Oct 07, 2005 9:28 pm (спустя 1 минуту 53 секунды)
   Post subject:
Reply with quote

что значит в цикле не работает?
а как работает?
Back to top
View user's profile Send private message
Moroz
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sat Oct 08, 2005 4:41 am (спустя 7 часов 13 минут; написано за 6 минут 25 секунд)
   Post subject: Привожу код
Reply with quote

[quote="Владимир Хоменко"]
Quote:
Ну расскажите, что Вы пробовали, что у Вас не получается, приведите код, который Вы писали, чтобы побороть проблему, думайте, одним словом, никто не будет за Вас писать скрипт.
Привожу код (Загружаю страницу-> в массив->вырезаю ссылку, вывожу и одновременно добавляю в базу, приведено 2-ва варианта, нужен 2-ой, как правильно добавить в бд):
Code (php): скопировать код в буфер обмена
$conn = db_connect();
$str = implode (www.php.net/implode)("",file (www.php.net/file)("http://www.server.ru/link.html"));
preg_match_all (www.php.net/preg_match_all)("!<link>(.*?)<link>!si",$str,$ok);
for ($i=0; $i<count($ok[1]); $i++){
echo (www.php.net/echo) $ok[1][$i]."<br>";
// 1. "serialize" - мне не подходит:
Code (php): скопировать код в буфер обмена
$add = serialize (www.php.net/serialize)($ok[1]);
$sql = "insert into test (text) values ('$add')";
// 2.
Code (php): скопировать код в буфер обмена
$sql = "insert into test (text) values ('$$ok[1][$i]')";

}
$result = mysql_query (www.php.net/mysql_query)($sql, $conn);
Back to top
Moroz
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sat Oct 08, 2005 8:43 pm (спустя 16 часов 1 минуту; написано за 2 минуты 38 секунд)
   Post subject: последняя версия кода
Reply with quote

Вот последняя версия кода:
Code (php): скопировать код в буфер обмена
$str = implode (www.php.net/implode)("",file (www.php.net/file)("http://www.server.ru/link.html"));
preg_match_all (www.php.net/preg_match_all)("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/", $str, $matches);

for ($i=0; $i< count (www.php.net/count)($matches[0]); $i++) {
  echo (www.php.net/echo) $matches[0][$i] . "<br>";
  $sql = "INSERT INTO test (text) VALUES('$matches[0][$i]')";
  $result = mysql_query (www.php.net/mysql_query)($sql, $conn);
}
В БД добавляются значения:
Array[0]
Array[1]
Array[3] ...

В чем ошибка?
Back to top
Алекс Светкин
Заглянувший



Joined: 14 Mar 2005
Posts: 19
Карма: 2
   поощрить/наказать


PostPosted: Sat Oct 08, 2005 9:16 pm (спустя 32 минуты; написано за 1 минуту 33 секунды)
   Post subject:
Reply with quote

Quote:
$sql = "INSERT INTO test (text) VALUES('$matches[0][$i]')";
Должно быть
$sql = "INSERT INTO test (text) VALUES('{$matches[0][$i]}')";
php.rinet.ru/manual/ru/language.types.string.php#language.types.string.syntax.double
Back to top
View user's profile Send private message Send e-mail
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Sun Oct 09, 2005 4:18 pm (спустя 19 часов 2 минуты; написано за 2 минуты 4 секунды)
   Post subject:
Reply with quote

Moroz wrote:
Code (php): скопировать код в буфер обмена
$sql = "INSERT INTO test (text) VALUES('$matches[0][$i]')";
Еще вариант ,потенциально проблемный:
Code (php): скопировать код в буфер обмена
$sql = "INSERT INTO test (text) VALUES('".implode("'), ('", $matches[0])."')";
Чтоб не делать кучу ненужных, имхо, запросов
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML